Windows Maps SDK
Windows Maps SDK – zestaw interfejsów programistycznych (ang. SDK) udostępniany przez firmę Microsoft umożliwiający twórcom aplikacji integrację usług mapowych w rozwiązaniach uruchamianych na platformach Windows, UWP, Android, iOS oraz w środowiskach Xamarin i React Native. Pakiet zapewnia zarówno gotowe kontrolki wizualne, jak i dostęp do usług REST oraz danych geoprzestrzennych.
Historia
Pierwsza wersja Windows Maps SDK pojawiła się w 2015 roku w ramach Microsoft Bing Maps Platform. Początkowo była dostępna wyłącznie dla aplikacji UWP, a w kolejnych latach rozbudowano ją o wsparcie dla Androida i iOS (2017) oraz integrację z Xamarin (2018). W 2020 roku wydano Windows Maps SDK for Web, umożliwiający tworzenie interaktywnych map w przeglądarkach przy użyciu JavaScript.
Główne komponenty
- MapControl – gotowa kontrolka UI pozwalająca wyświetlać mapę, obsługiwać gesty dotykowe i dodawać warstwy.
- Geolocation API – interfejs do określania położenia urządzenia przy użyciu satelity, Wi‑Fi i sieci komórkowej.
- Search API – możliwości wyszukiwania adresów, punktów POI (ang. Points of Interest) oraz geokodowania odwróconego.
- Routing API – wyznaczanie tras samochodowych, pieszych oraz transportu publicznego.
- Data Layers – obsługa własnych warstw danych w formacie GeoJSON lub KML.
- Offline Maps – pobieranie map do użytku offline, przydatne w aplikacjach mobilnych.
Platformy i języki programowania
SDK jest dostępny dla następujących środowisk:
- C# – głównie w aplikacjach UWP oraz WPF.
- C++/WinRT – dla deweloperów preferujących natywny kod.
- Java – w aplikacjach Android.
- Swift oraz Objective‑C – w aplikacjach iOS.
- JavaScript/TypeScript – w wersji Web SDK.
- Xamarin oraz React Native – dla aplikacji multiplatformowych.
Podstawowe funkcje
Wyświetlanie mapy
Za pomocą MapControl programista może wybrać jedną z kilku dostępnych styli mapy (np. Road, Aerial, CanvasDark) oraz zdefiniować poziom przybliżenia. Mapy są dostarczane z serwerów Bing Maps, które zapewniają aktualne dane kartograficzne.
Dodawanie znaczników i warstw
SDK umożliwia umieszczanie pushpinów, poligonów oraz linii. Dla dużych zbiorów danych zaleca się użycie Clustered Layer, aby utrzymać wysoką wydajność renderowania.
Geokodowanie i odwrócone geokodowanie
Za pomocą SearchManager można przekształcić adres w współrzędne geograficzne (geokodowanie) oraz odwrotnie – współrzędne na adres (odwrócone geokodowanie). Wyniki mogą być filtrowane pod kątem języka, kraju i typu miejsca.
Wyznaczanie tras
Routing API pozwala określić najkrótszą lub najszybszą trasę, uwzględniając ograniczenia ruchu, unikanie autostrad oraz preferencje dotyczące środków transportu. Trasy zwracane są jako zestaw punktów GeoJSON gotowy do wizualizacji.
Obsługa trybu offline
Programista może przygotować pakiet map do pobrania i zapisania w pamięci urządzenia. SDK automatycznie wykrywa brak połączenia i używa danych offline, gwarantując ciągłość działania aplikacji.
Bezpieczeństwo i limity
Wszystkie zapytania do usług mapowych wymagają klucza API (Key), uzyskiwanego w Azure Portal. Klucz może być skonfigurowany z ograniczeniami:
- lokalizacja IP,
- zakresy domen,
- limit liczby zapytań na dzień.
Microsoft udostępnia również warunki licencji oraz cennik, w którym podstawowy plan Free Tier oferuje do 125 000 wyświetleń map miesięcznie.
Przykładowy kod (C# / UWP)
using Microsoft.UI.Xaml.Controls;
using Microsoft.Maps.MapControl.UI.Xaml;
using Microsoft.Maps.MapControl.UI.Xaml.Core;
public sealed partial class MainPage : Page
{
public MainPage()
{
this.InitializeComponent();
MyMap.CredentialsProvider = new ApplicationIdCredentialsProvider("TWÓJ_KLUCZ_API");
MyMap.Center = new Geopoint(new BasicGeoposition() { Latitude = 52.2297, Longitude = 21.0122 });
MyMap.ZoomLevel = 12;
var pin = new MapIcon()
{
Location = MyMap.Center,
Title = "Warszawa",
NormalizedAnchorPoint = new Point(0.5, 1.0),
ZIndex = 0
};
MyMap.MapElements.Add(pin);
}
}
Porównanie z innymi SDK
W zestawieniu najpopularniejszych platform mapowych Windows Maps SDK wypada następująco:
| Cecha | Windows Maps SDK | Google Maps SDK | Here Maps SDK |
|---|---|---|---|
| Obsługa platform | Windows, Android, iOS, Web, Xamarin | Android, iOS, Web | Android, iOS, Web, Windows |
| Licencjonowanie | Free Tier + płatny plan | Free Tier + płatny plan | Płatny, brak darmowego tieru |
| Renderowanie 3D | Tak (Aerial 3D) | Tak | Tak |
| Wsparcie offline | Tak | Tak (przy dodatkowym SDK) | Tak |
Zastosowania w praktyce
Windows Maps SDK znajduje zastosowanie w różnorodnych aplikacjach:
- Systemy nawigacji samochodowej i fleet management.
- Aplikacje turystyczne prezentujące atrakcje i punkty POI.
- Rozwiązania logistyczne, monitorujące pozycję przesyłek.
- Gry wykorzystujące mapy rzeczywiste jako tło (np. AR).
- Aplikacje służb ratunkowych do szybkiej lokalizacji zdarzeń.
Rozwój i przyszłość
Microsoft zapowiada dalszą integrację Windows Maps SDK z usługą Azure Maps, co pozwoli na łączenie danych geoprzestrzennych z chmurą Azure oraz na wykorzystanie sztucznej inteligencji do analizy ruchu i prognozowania zdarzeń. Planowane są także ulepszenia w zakresie renderowania 3D oraz wsparcie dla nowych formatów danych, takich jak Mapbox Vector Tiles.
Źródła i dalsza lektura
- Bing Maps Platform – opis podstawowych usług mapowych Microsoftu.
- Azure Maps – chmurowe rozszerzenia dla Windows Maps SDK.
- Geokodowanie – techniki przetwarzania adresów na współrzędne.
- Routing – algorytmy wyznaczania tras.